NoSQL (Not Only SQL) เป็นฐานข้อมูลที่ได้รับความนิยมมากขึ้นในปัจจุบัน เนื่องจากมีความยืดหยุ่นสูงในการจัดเก็บข้อมูลที่มีโครงสร้างหลากหลาย ซึ่งแตกต่างจากฐานข้อมูลเชิงสัมพันธ์ (Relational Database) ที่ข้อมูลต้องมีโครงสร้างที่จัดเจน MongoDB เป็นหนึ่งในฐานข้อมูล NoSQL ที่ได้รับการยอมรับอย่างกว้างขวาง การจัดเก็บข้อมูลใน MongoDB สามารถทำได้ผ่าน `db.collection.save({})` ซึ่งเราจะมาศึกษากันในบทความนี้
MongoDB เป็นฐานข้อมูลที่เน้นการจัดเก็บข้อมูลแบบเอกสาร (Document-oriented) โดยใช้รูปแบบ JSON (JavaScript Object Notation) ซึ่ง JSON ถูกออกแบบมาให้มนุษย์สามารถอ่านได้ง่ายและเครื่องสามารถแปลความหมายได้รวดเร็ว MongoDB มีจุดเด่นหลายอย่างเช่น:
1. ความยืดหยุ่นของ Schema: ใน MongoDB ข้อมูลเอกสารในคอลเลคชั่นเดียวกันสามารถมีโครงสร้างที่แตกต่างกันได้ เราไม่จำเป็นต้องนิยาม Schema ล่วงหน้าเหมือนในฐานข้อมูลเชิงสัมพันธ์ 2. การขยายตัวที่ง่ายดาย: MongoDB รองรับการกระจายตัวของข้อมูล (Sharding) ทำให้สามารถขยายตัวได้อย่างมีประสิทธิภาพ 3. การสืบค้นข้อมูลที่รวดเร็ว: ด้วยการจัดเก็บรูปแบบ JSON และการสร้างดัชนีที่ก้าวหน้า ทำให้ MongoDB สามารถสืบค้นข้อมูลได้อย่างรวดเร็ว
คำสั่ง `db.collection.save({})` ถูกใช้ในการเพิ่มหรืออัปเดตเอกสารในคอลเลคชั่น เมื่อมีการเรียกใช้คำสั่งนี้ MongoDB จะทำการตรวจสอบว่าเอกสารนั้นมี `_id` ที่ระบุแล้วหรือไม่ ซึ่งการทำงานของมันสามารถแบ่งออกเป็นสองกรณี:
1. เพิ่มเอกสารใหม่: หาก `_id` ไม่ได้ระบุหรือยังไม่มีในคอลเลคชั่น คำสั่ง save จะทำการเพิ่มเอกสารใหม่เข้าไป 2. อัปเดตเอกสารเดิม: หาก `_id` ที่ระบุมีอยู่ในคอลเลคชั่นแล้ว คำสั่ง save จะทำการอัปเดตข้อมูลของเอกสารนั้นให้ตรงกับข้อมูลที่ให้ใหม่ตัวอย่างการใช้งาน
ในตัวอย่างนี้ เรามีคอลเลคชั่นชื่อว่า `users` และต้องการเพิ่มหรืออัปเดตข้อมูลผู้ใช้:
// เพิ่มผู้ใช้ใหม่
db.users.save({
name: 'John Doe',
email: 'john.doe@example.com'
});
// อัปเดตข้อมูลของผู้ใช้ที่มี _id ที่ระบุ
db.users.save({
_id: ObjectId("507f191e810c19729de860ea"),
name: 'John Doe',
email: 'john.d.new@example.com'
});
ในกรณีแรก ข้อมูลผู้ใช้ชื่อ John Doe จะถูกเพิ่มเข้าไปใหม่ในคอลเลคชั่น `users` เนื่องจากเรายังไม่ได้ระบุ `_id` แต่ในกรณีที่สอง ข้อมูลจะถูกอัปเดตเนื่องจาก `_id` นั้นมีอยู่แล้ว
ข้อดี
- ความเรียบง่าย: การใช้คำสั่งเดียวสำหรับทั้งการเพิ่มและอัปเดตทำให้กระบวนการนี้เรียบง่ายและรัดกุม - ลดความซับซ้อน: เหมาะสมในการดูแลรักษาข้อมูลที่ไม่ซับซ้อนหรือต้องการกระบวนการที่รวดเร็วข้อจำกัด
- ขาดการควบคุมที่ละเอียด: หากต้องการควบคุมเพิ่มเติม เช่น ตรวจสอบก่อนอัปเดต อาจจำเป็นต้องเขียนโค้ดเพิ่มเติม - ประสิทธิภาพ: เมื่อเทียบกับ `insert` และ `update` คำสั่ง save อาจไม่ได้มีประสิทธิภาพสูงสุดในทุกกรณี โดยเฉพาะเมื่อข้อมูลมีความซับซ้อน
คำสั่ง `db.collection.save({})` ใน MongoDB เหมาะสำหรับการจัดการข้อมูลที่ต้องการความรวดเร็วและสะดวกสบาย แต่หากมีการใช้งานที่มีความซับซ้อนมากขึ้น ผู้พัฒนาอาจพิจารณาการใช้คำสั่งอื่นๆ เช่น `insert`, `update` หรือ `findAndModify` เพื่อให้เหมาะสมกับการใช้งานมากที่สุด
การเข้าใจถึงความสามารถและข้อจำกัดของ MongoDB จะช่วยให้เราพัฒนาโปรแกรมได้อย่างมีประสิทธิภาพมากยิ่งขึ้น
สำหรับใครที่สนใจเรียนรู้เกี่ยวกับการใช้ MongoDB หรือ NoSQL ในเชิงลึก เราขอแนะนำให้มาสำรวจหลักสูตรการเขียนโปรแกรมกับเรา เพื่อปลดล็อกความเป็นไปได้ใหม่ๆในโลกของการพัฒนาซอฟต์แวร์.
หมายเหตุ: ข้อมูลในบทความนี้อาจจะผิด โปรดตรวจสอบความถูกต้องของบทความอีกครั้งหนึ่ง บทความนี้ไม่สามารถนำไปใช้อ้างอิงใด ๆ ได้ ทาง EPT ไม่ขอยืนยันความถูกต้อง และไม่ขอรับผิดชอบต่อความเสียหายใดที่เกิดจากบทความชุดนี้ทั้งทางทรัพย์สิน ร่างกาย หรือจิตใจของผู้อ่านและผู้เกี่ยวข้อง
หากเจอข้อผิดพลาด หรือต้องการพูดคุย ติดต่อได้ที่ https://m.me/expert.Programming.Tutor/
Tag ที่น่าสนใจ: java c# vb.net python c c++ machine_learning web database oop cloud aws ios android
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่ http://m.me/Expert.Programming.Tutor
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM